/************************************************
 * Copyright (c) 2007 ~ 2009, 
 * All rights reserved.
 * Version   : 1.0
 * Author    : lengsh@gmail.com 
 * Date      : 2008.1.2
 ***********************************************/

#ifndef _PANDA_HELPER_H______
#define _PANDA_HELPER_H______

#include <string>
#include <map>
#include <iostream>
#include <pthread.h>
#include <string.h>
#include <libpq-fe.h>
#include "CobwebMql.h"
#include "antxdef.h"

using namespace std;

class Helper 
{
	protected:
		static Helper *_instance;
		bool  Startup(const char *filename);

	protected:
		string m_sConfFile;
		int  g_expire ;
		PGconn *g_db ;
		CobWebMQL *g_pDB ;
                int m_cobweb_port;
///////////
	public:

		static Helper *Instance(const char *conf = NULL);
		static void Release( bool bForce = false);
	protected:
		Helper();
		virtual ~Helper();
		int UpdateUser(char *user, conn *c);
		int Invoke_Server( char *usr );

	public:
		int Update(const char *key, int klen, int flags, time_t expire, const char *data, int dlen);
		int Process(map < int, string > &keys, conn *c); 
		int Process(const char *cmd, conn *c);
		int Timer(long time, int gap);
                int Check(void *args);
		char *Stats(char * ext_stats);
                bool Clear();
};


#endif 

